///*******************************************************************************
// * Copyright (c) 2000, 2006 IBM Corporation and others.
// * All rights reserved. This program and the accompanying materials
// * are made available under the terms of the Eclipse Public License v1.0
// * which accompanies this distribution, and is available at
// * http://www.eclipse.org/legal/epl-v10.html
// *
// * Contributors:
// * IBM Corporation - initial API and implementation
// *******************************************************************************/
//package org.eclipse.ui.tests.multipageeditor;
//
//import org.eclipse.core.runtime.IProgressMonitor;
//import org.eclipse.jface.text.BadLocationException;
//import org.eclipse.jface.text.FindReplaceDocumentAdapter;
//import org.eclipse.jface.text.IDocument;
//import org.eclipse.jface.text.IRegion;
//import org.eclipse.swt.SWT;
//import org.eclipse.swt.widgets.Composite;
//import org.eclipse.swt.widgets.Control;
//import org.eclipse.swt.widgets.Label;
//import org.eclipse.ui.IEditorPart;
//import org.eclipse.ui.PartInitException;
//import org.eclipse.ui.editors.text.TextEditor;
//import org.eclipse.ui.part.MultiPageEditorPart;
//import org.eclipse.ui.texteditor.IDocumentProvider;
//
///**
// * A MultiPageEditorPart with methods that take a peek at things like selection
// * events or selection status or page change events.
// *
// * @since 3.2
// */
//public class MultiVariablePageEditor extends MultiPageEditorPart {
//
// private Composite lastPage;
//
// /**
// * Default with 2 pages, although they're on the same editor input and
// * they're the TextEditor.
// */
// protected void createPages() {
// try {
// TextEditor section1 = new TextEditor();
// int index = addPage(section1, getEditorInput());
// setPageText(index, section1.getTitle());
//
// TextEditor section2 = new TextEditor();
// index = addPage(section2, getEditorInput());
// setPageText(index, section2.getTitle());
//
// ContextTextEditor section3 = new ContextTextEditor();
// index = addPage(section3, getEditorInput());
// setPageText(index, section3.getTitle());
//
// } catch (PartInitException e) {
// throw new RuntimeException(e);
// }
// }
//
// public void doSave(IProgressMonitor monitor) {
// // do nothing
// }
//
// public void doSaveAs() {
// throw new UnsupportedOperationException(
// "doSaveAs should not be called.");
// }
//
// /**
// * No save as.
// *
// * @return false
// */
// public boolean isSaveAsAllowed() {
// return false;
// }
//
// /*
// * (non-Javadoc)
// *
// * @see org.eclipse.ui.part.MultiPageEditorPart#pageChange(int)
// */
// protected void pageChange(int newPageIndex) {
// super.pageChange(newPageIndex);
// IEditorPart part = getEditor(newPageIndex);
// if (part instanceof TextEditor) {
// TextEditor editor = (TextEditor) part;
// IDocumentProvider provider = editor.getDocumentProvider();
// IDocument doc = provider.getDocument(getEditorInput());
// FindReplaceDocumentAdapter find = new FindReplaceDocumentAdapter(
// doc);
// try {
// IRegion region = find.find(0, "#section0" + (newPageIndex + 1),
// true, true, false, false);
// if (region != null) {
// editor.selectAndReveal(region.getOffset(), region
// .getLength());
// }
// } catch (BadLocationException e) {
// System.err.println("Failed to find a section");
// }
// }
// }
//
// /**
// * Set the active page in this MPEP. Just delegate back to
// * setActivePage(int).
// *
// * @param index
// * The page index which must be valid.
// */
// public void setPage(int index) {
// super.setActivePage(index);
// }
//
// /**
// * Add a page with a composite for testing.
// *
// */
// public void addLastPage() {
// lastPage = new Composite(getContainer(), SWT.NONE);
// Label l = new Label(lastPage, SWT.SHADOW_IN);
// l.setText(getEditorInput().getName());
// addPage(lastPage);
// }
//
// /**
// * remove the last page for testing.
// *
// */
// public void removeLastPage() {
// if (getPageCount() > 0) {
// removePage(getPageCount() - 1);
// }
// lastPage = null;
// }
//
// /**
// * Get the last page composite for testing.
// *
// * @return the last page.
// */
// public Control getLastPage() {
// return lastPage;
// }
//
// /**
// * Return the control for testing (like the editor control).
// *
// * @param index
// * the page index to get
// * @return the control for that page
// */
// public Control getTestControl(int index) {
// return getControl(index);
// }
//}